Skip to content

docs: capture release-please single-root-package lesson#229

Open
theagenticguy wants to merge 2 commits into
mainfrom
chore/erpaval-release-lesson
Open

docs: capture release-please single-root-package lesson#229
theagenticguy wants to merge 2 commits into
mainfrom
chore/erpaval-release-lesson

Conversation

@theagenticguy

@theagenticguy theagenticguy commented Jun 11, 2026

Copy link
Copy Markdown
Owner

What

Captures the durable release-pipeline lesson from this session, and applies the first run of a new ERPAVal lesson-corpus health detector to fix drift the sweep surfaced.

1. The lesson (original scope)

  • solutions/conventions/release-please-single-root-package-cannot-release.md — why a single root release-please component with a scoped package-name cannot create a release in v17 (this.component = options.component || normalizeComponent(packageName) falsy-coerces the empty component → derives clibuildRelease's standalone check rejects the component-less PR → release_created=false → npm never publishes), and the fix: two components + the linked-versions plugin.

2. Detector-driven corpus hygiene (expanded scope)

Built erpaval-compress.py into the erpaval skill (personal-plugins) — embeds the whole lesson corpus (Bedrock Titan v2), then flags orphans, dead links, and semantic-overlap clusters read-only. First run over .erpaval/solutions (55 lessons) found:

  • 3 orphans (on disk, never linked in INDEX.md) — now indexed at topical anchors: tree-sitter-wasms-catalog-incompat, pnpm-install-on-efs, finch-as-docker-shim.
  • Release/CI family had asymmetric cross-linksrelease-published-event-needs-pat-or-inline had no related: block despite 3 lessons pointing at it; workflow-call-permissions-ceiling wasn't in the family. Made the ring bidirectional across 4 files (using the corpus's existing related: + [[slug]] convention).
  • This PR had originally appended the new lesson under the ## Specs header — moved it into the conventions cluster where it belongs.

Detector verdict: 0 merge candidates. Every "near-duplicate" cluster is an adjacent family where each lesson carries distinct file:line mechanism. The corpus was under-linked, not bloated — so the fix is navigational (cross-links + index), never a lossy prose merge.

Why

The single-component "fix" cost a multi-attempt recovery and turned out structurally impossible; documenting it so a future session reaches for linked-versions directly. The detector additions make this kind of drift visible automatically as the corpus grows past ~40 lessons, instead of waiting for a reader to notice the index feels noisy.

Verification

Docs-only; no code or release-config change.

T and others added 2 commits June 14, 2026 03:52
Document why collapsing to a single root release-please component with a scoped
package-name cannot create a release (the `||` coercion derives a component the
component-less release PR can't match -> release_created=false -> npm never
publishes), and that the fix is two components + the linked-versions plugin so
the published CLI bumps on every commit. Indexed in .erpaval/INDEX.md.
…ctional

Surfaced by a new erpaval lesson-corpus detector (Bedrock Titan v2 embeddings
+ structural checks) run over .erpaval/solutions:

- 3 orphans (on disk, absent from INDEX.md) now linked at topical anchors:
  tree-sitter-wasms-catalog-incompat, pnpm-install-on-efs, finch-as-docker-shim.
- Release/CI lesson family had asymmetric cross-links: release-published-event
  and workflow-call-permissions-ceiling had no/partial related: despite three
  lessons pointing at them. Made the family ring bidirectional (4 files).
- Moved release-please-single-root-package out from under the Specs header
  (this PR had originally appended it there) into the conventions cluster.

Detector verdict: 0 merge candidates. Every near-duplicate cluster is an
adjacent family where each lesson carries distinct file:line mechanism: the
corpus was under-linked, not bloated. Cross-link, never merge.
@theagenticguy theagenticguy force-pushed the chore/erpaval-release-lesson branch from c22f4e9 to fb739dd Compare June 14, 2026 04:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant